home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Science / RLaB / rlib / whos.r < prev   
Text File  |  1994-04-25  |  1KB  |  54 lines

  1. //-------------------------------------------------------------------//
  2.  
  3. //  Syntax:  whos ( L )
  4.  
  5. //  Description:
  6.  
  7. //  The whos function prints a tabular listing (to stdout) of the
  8. //  contents of the list, or symbol-table L. Information on functions
  9. //  is not output. If no argument is provided whos prints out 
  10. //  information from the global-symbol table.
  11.  
  12. //  See Also: sizeof, who, what
  13.  
  14. //-------------------------------------------------------------------//
  15.  
  16. static (whos_1, Btotal);
  17.  
  18. whos = function ( LIST )
  19. {
  20.   Btotal = 0;
  21.   if (!exist (LIST)) 
  22.   {
  23.     whos_1 ($$);
  24.   else
  25.     whos_1 (LIST);
  26.   }
  27.   printf ("Total MBytes = %f\n", Btotal/1.e6);
  28. };
  29.  
  30. whos_1 = function ( LIST )
  31. {
  32.   local (i, j, m, n, nbytes);
  33.  
  34.   printf ("\tName            Class\tType\tSize\t\tNBytes\n");
  35.   for (i in members (LIST))
  36.   {
  37.     nbytes = sizeof (LIST.[i]);
  38.     Btotal = Btotal + nbytes;
  39.     if (class (LIST.[i]) == "function") { continue }
  40.     if (class (LIST.[i]) == "list")
  41.     {
  42.       m = size (LIST.[i]);
  43.       printf ("\t%-15s", i);
  44.       printf ("\t%s\t%s\t%i\t\t%i\n", ...
  45.               class (LIST.[i]), type (LIST.[i]), m[1], nbytes);
  46.     else
  47.       m = size (LIST.[i]);
  48.       printf ("\t%-15s", i);
  49.       printf ("\t%s\t%s\t%i\t%i\t%i\n", ...
  50.               class (LIST.[i]), type (LIST.[i]), m[1], m[2], nbytes);
  51.     }
  52.   }
  53. };
  54.